package com.wwm.springcloud.base.exception;

import com.wwm.springcloud.base.common.ResultCode;

/**
 * 自定义异常基类，全站各业务系统自定义的异常都要集成此类
 * <p>
 * 使用方法可以参考 <b>SystemException</b>
 *
 * @author wuyuegang
 * 
 */
public abstract class MyBaseException extends RuntimeException
{
    /**
     * generate
     */
    private static final long serialVersionUID = 8177301895983119239L;
    
    /**
     * 错误代码
     */
    Integer errorCode;
    
    /**
     * 错误信息
     */
    String errorMsg;
    
    public Integer getErrorCode()
    {
        return errorCode;
    }
    
    public void setErrorCode(Integer errorCode)
    {
        this.errorCode = errorCode;
    }
    
    public String getErrorMsg()
    {
        return errorMsg;
    }
    
    public void setErrorMsg(String errorMsg)
    {
        this.errorMsg = errorMsg;
    }
    
    /**
     * 自定义异常成员函数
     * 
     * @param errorCode
     * @param errorMsg
     */
    public MyBaseException(Integer errorCode, String errorMsg)
    {
        super(errorMsg);
        this.errorCode = errorCode;
        this.errorMsg = errorMsg;
    }
    
    /**
     * 使用错误码枚举初始化自定义异常基类
     * 
     * @param error
     */
    public MyBaseException(ResultCode error)
    {
        super(error.getMessage());
        this.errorCode = error.getCode();
        this.errorMsg = error.getMessage();
    }
}
